
const p1 = Promise.resolve().then(()=>{
    return 100;
})

console.log('p1',p1)    // pending-->fufilled

const p2 = Promise.resolve().then(()=>{
    throw new Error("then error")
})

console.log('p2',p2)    // pending-->rejected
p2.then(()=>{
    console.log('p2 then')
}).catch(err => {
    console.error('p2err', err.toString())
})

const p3 = Promise.reject('my error p3').catch(err=>{
    console.error(err)
})
console.log('p3', p3)   // 注意，这是 fufilled 状态的Promise，触发then回调
p3.then(()=>{
    console.log(100)    // 被触发
})

const p4 = Promise.reject('my error p4').catch(err=>{
    throw new Error('catch err p4')
})
console.log('p4', p4)   // 注意，这是 rejected 状态的Promise，触发catch回调
p4.then(()=>{
    console.log(200)
}).catch(()=>{
    console.log('some err') // 被触发
})  // fufilled状态的Promise
